#include <iostream>

using namespace std;

int COMB (int n, int r)
{
    if ((r==0) || (n==r))
    {
        return (1);
    }
    else
    {
        return (COMB(n-1,r-1)+COMB(n-1,r));
    }
}


int COMBPD (int n, int r)
{
    int T[n+1][r+1];
    for(int i=0 ; i<=(n-r); i++)
    {
        T[i][0]=1;
    }
    for(int i=1 ; i<=r; i++)
    {
        T[i][i]=1;
    }
    for(int j=1; j<=r; j++)
    {
       for(int i=j+1 ; i<=(n-r+j); i++)
        {
            T[i][j]= T[i-1][j-1]+T[i-1][j];
        }
    }
    return(T[n][r]);
}

int main()
{
    cout << COMBPD(35,30) << endl;
    cout << COMB(35,30)<< endl;
}
